1. Technical Field
The present invention relates in general to a system and method for securely saving a program context. More particularly, the present invention relates to a system and method that saves a program's context from an isolated special processing unit to a shared memory in a heterogeneous processing system.
2. Description of the Related Art
Computing systems comprising a multiplicity of heterogeneous processors are becoming increasingly popular. In these environments, one or more general purpose processor cores work in conjunction with one or more special purpose processor cores. Typically, since they have different characteristics, the general purpose processor cores use a different instruction set architecture (ISA) than those used by the special purpose or application specific processors. Having different processing characteristics and ISAs lends each processor type to efficiently performing different types of tasks.
Because of the different characteristics of the processors, heterogeneous processors are attractive to a variety of environments, such as multimedia, gaming, and numeric intensive application environments. In this environment, a program can have multiple threads. Some of these threads can execute on the general purpose processor cores and other threads can execute on the special purpose processor cores. While multiple special purpose processor cores may be included in a single system, these special purpose processor cores may still become constrained prompting the system to task switch a thread currently running on one of the special purpose processor cores in order to load and execute a different thread on the special purpose processor core.
One threat posed to existing computer systems are malevolent users, such as hackers, that strive to circumvent security measures used by applications in order to make illegitimate copies of the software (often for profit), or hack the software so that a different image of the software is loaded and executed by the system. Swapping one version of software for another is often referred to as a “replay attack.” One technique used by malevolent users is to capture the image of a software program that has been tasked out by the operating system and reuse the image.
What is needed, therefore, is a system and method that uses a secure loader to securely save a software program. Furthermore, what is needed is a system and method that securely saves and a program in a manner that effectively prevents replay attacks.